package com.ice.crm.user.service.impl;

import com.ice.crm.user.mapper.UserMapper;
import com.ice.crm.user.model.User;
import com.ice.crm.user.service.UserService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

@Service
public class UserServiceImpl implements UserService {
    @Resource
    private UserMapper userMapper;

    /**
     * 对返回的结果进行判断
     *
     * @param user
     * @return int
     * 返回1 表示用户不存在
     * 返回2 表示密码错误
     * 返回3 表示用户过期
     * 返回4 表示用户锁定
     * 返回0 表示登录成功
     */
    @Override
    public int login(User user) {
        User dbUser = userMapper.selectByLoginAct(user.getLoginAct());
        // 对返回的数据进行判断
        if (dbUser == null) {
            return 1;
        }
        // 对返回的数据的密码进行判断
        if (!dbUser.getLoginPwd().equals(user.getLoginPwd())) {
            return 2;
        }
        // 获取系统当前时间毫秒数
        long sysTime = System.currentTimeMillis();
        // 进行判断
        if (sysTime > dbUser.getExpireTime().getTime()) {
            return 3;
        }
        if (dbUser.getLockState() == 1) {
            return 4;
        }
        // 将成功登陆的用户信息给到 user 对象
        BeanUtils.copyProperties(dbUser, user);
        return 0;
    }
}
